package com.xuecheng.content.service;

import com.xuecheng.base.model.PageParams;
import com.xuecheng.base.model.PageResult;
import com.xuecheng.content.model.dto.AddCourseDto;
import com.xuecheng.content.model.dto.CourseBaseInfoDto;
import com.xuecheng.content.model.dto.EditCourseDto;
import com.xuecheng.content.model.dto.QueryCourseParamsDto;
import com.xuecheng.content.model.po.CourseBase;

/**
 * @description: 课程信息管理接口
 * @author: ajie
 * @date: 2024/1/10 22:26:32
 * @version: 1.0
 */
public interface CourseBaseInfoService {

    /**
     * description: 课程分页查询
     * @param pageParams
     * @param companyId
     * @param queryCourseParamsDto
     * @return:
     * @author: ajie
     * @date: 2024/1/10 22:35
     */
    public PageResult<CourseBase> queryCourseBaseList(Long companyId, PageParams pageParams, QueryCourseParamsDto queryCourseParamsDto);

    /**
     * description: 新增课程
     * @param companyId 机构ID
     * @param addCourseDto
     * @return: 课程详细信息
     * @author: ajie
     * @date: 2024/1/12 13:44
     */
    public CourseBaseInfoDto createCourseBase(Long companyId ,AddCourseDto addCourseDto);

    /**
     * @description 根据id查询课程基本信息
     * @param courseId  课程id
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @author Mr.M
     * @date 2022/10/9 8:13
     */
    public CourseBaseInfoDto getCourseBaseInfo(long courseId);

    /**
     * @description 修改课程信息
     * @param companyId  机构id
     * @param dto  课程信息
     * @return com.xuecheng.content.model.dto.CourseBaseInfoDto
     * @author Mr.M
     * @date 2022/9/8 21:04
     */
    public CourseBaseInfoDto updateCourseBase(Long companyId, EditCourseDto dto);


    /**
     * @description: 删除课程信息
     * @params: [companyId, id]
     * @return:
     * @author: ajie
     * @date: 2024/1/16 15:39
     */
    public void deleteCourseBase(Long companyId, Long id);
}
